package com.clss.commandhelper.net;


import com.clss.commandhelper.base.BaseJson;
import com.clss.commandhelper.tools.Constant;

import java.util.Map;

import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

/**
 * 接口列表
 *
 * @author Liuv
 * @date 2017/4/12
 */

public interface ApiList {

	//登录
	@POST("api/login")
	@FormUrlEncoded
	Call<BaseJson> login(@FieldMap Map<String, String> body);

	//直播任务列表
	@GET("api/policeDispatch/search")
	Call<BaseJson> searchTaskList(@Header(Constant.APP_TOKEN) String token);

	//直播任务详情
	@GET("api/policeDispatch/detail")
	Call<BaseJson> getCaseDetail(@Header(Constant.APP_TOKEN) String token, @Query("taskId") String taskId);

	//加入视频房间
	@POST("web/infoTask/joinVideoRoom")
	@FormUrlEncoded
	Call<BaseJson> joinVideoRoom(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);

	//认领警情
	@POST("api/policeDispatch/accept")
	@FormUrlEncoded
	Call<BaseJson> changeCaseStatus(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);

	//版本更新
	@GET("api/reg/versionNumber/{version}/5")
	Call<BaseJson> updateVersion(@Path("version") int version);

	//上传取证信息与新建事件
    @Headers({"Content-Type: application/json","Accept: application/json"})
    @POST("api/policeDispatch/upload")
    Call<BaseJson> postEvidenceData(@Header(Constant.APP_TOKEN) String token, @Body RequestBody body);

    //手动刷新坐标
    @POST("api/infoTask/editGps")
    @FormUrlEncoded
    Call<BaseJson> updateTaskLocation(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);

	//补充信息
	@Headers({"Content-Type: application/json","Accept: application/json"})
	@POST("api/infoTask/addDetail")
	Call<BaseJson> addCaseInfo(@Header(Constant.APP_TOKEN) String token, @Body RequestBody body);

	//火警列表
	@GET("api/fire/Undispatchlist")
	Call<BaseJson> getFireAlarmList(@Header(Constant.APP_TOKEN) String token, @Query("page") int page);

	//火警详情
	@POST("api/fire/AlarmHandle/{handleId}")
	Call<BaseJson> getFireAlarmDetail(@Header(Constant.APP_TOKEN) String token, @Path("handleId") String handleId);

	//火警详情
	@POST("api/acceptFireHandle/{handleId}")
	Call<BaseJson> acceptFireAlarm(@Header(Constant.APP_TOKEN) String token, @Path("handleId") String handleId);

	//上传取证信息与新建事件
	@Headers({"Content-Type: application/json","Accept: application/json"})
	@POST("api/fire/saveFeedBack/{handleId}")
	Call<BaseJson> fireAlarmFeedback(@Header(Constant.APP_TOKEN) String token,@Path("handleId") String handleId,@Body RequestBody body);


	//通告列表
	@GET("api/cluePushInfo/getList")
	Call<BaseJson> getAncList(@Header(Constant.APP_TOKEN) String token, @Query("pushFlag") int pushFlag);

	//更改通告状态
	@POST("api/cluePushInfo/updateFlag")
	@FormUrlEncoded
	Call<BaseJson> updateAncStatus(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);

	//通告详情
	@GET("api/cluePushInfo/get")
	Call<BaseJson> getAncDetail(@Header(Constant.APP_TOKEN) String token, @Query("pushId") String pushId);

	//通告详情
	@GET("api/clueInfo/get")
	Call<BaseJson> getAncClueDetail(@Header(Constant.APP_TOKEN) String token, @Query("clueId") String clueId,
								@Query("policeId") String policeId, @Query("userId") String userId);

	//更改通告状态
	@POST("api/clueInfo/saveBackInfo")
	@FormUrlEncoded
	Call<BaseJson> sendAncClueComment(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);

	//发布通告
	@Headers({"Content-Type: application/json","Accept: application/json"})
	@POST("api/cluePushInfo/save")
	Call<BaseJson> issueAnc(@Header(Constant.APP_TOKEN) String token, @Body RequestBody body);

	//通告详情
	@GET("api/policeNum/search")
	Call<BaseJson> getSupportPoliceList(@Header(Constant.APP_TOKEN) String token);

	//认领警情
	@POST("api/policeDispatch/inviteSave")
	@FormUrlEncoded
	Call<BaseJson> askSupportTask(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);

	//110警情列表
	@GET("api/unCompleteHandleList")
	Call<BaseJson> get110AlarmTaskList(@Header(Constant.APP_TOKEN) String token, @Query("type") int type, @Query("i") int page);

	//线索列表
	@GET("api/getClueList")
	Call<BaseJson> getcluelist(@Header(Constant.APP_TOKEN) String token, @Query("page") int page, @Query("appFlag") int appFlag);

	//	//获取banner
	//提交当前位置
	@POST("api/policePosition/save")
	@FormUrlEncoded
	Call<BaseJson> uploadLocation(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);

//	//获取banner
//	@GET("api/banner")
//	Call<BaseJson> getBanner();
//
//	//获取splash图片
//	@GET("api/ad")
//	Call<BaseJson> getAd();
//
//	//版本更新
//	@GET("api/reg/versionNumber/{version}/4")
//	Call<BaseJson> updateVersion(@Path("version") int version);
//
//	//修改密码
//	@POST("api/updatePassword")
//	@FormUrlEncoded
//	Call<BaseJson> modifyPassword(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
//	//根据文档类别id查询文档列表
//	@POST("api/document/list")
//	@FormUrlEncoded
//	Call<BaseJson> searchDocumentList(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
//	//首页数据
//	@GET("api/home")
//	Call<BaseJson> getHomeData(@Header(Constant.APP_TOKEN) String token);
//
//	//获取文档所有子标题
//	@POST("api/document/titleTree")
//	@FormUrlEncoded
//	Call<BaseJson> getDocumentTitleTree(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
//	//获取视频详情
//	@GET("api/videoDetails")
//	Call<BaseJson> getVideoDetails(@Header(Constant.APP_TOKEN) String token, @Query("id") String id);
//
//	//获取视频详情
//	@GET("api/videoList")
//	Call<BaseJson> getVideoList(@Header(Constant.APP_TOKEN) String token, @Query("id") String id, @Query("page") int page);
//
//	//视频评论
//	@POST("api/comment")
//	@FormUrlEncoded
//	Call<BaseJson> commentToVideo(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
//	//发送站内信
//	@POST("api/message/sendMsg")
//	@FormUrlEncoded
//	Call<BaseJson> sendMessage(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
//	//获取消息列表
//	@POST("api/message/getMessageList")
//	@FormUrlEncoded
//	Call<BaseJson> getMessageList(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
//	//获取消息详情
//	@POST("api/message/getMessageById")
//	@FormUrlEncoded
//	Call<BaseJson> getMessageById(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
//	//获取文档或视频类型列表
//	@GET("api/typeList/{type}")
//	Call<BaseJson> getTypeList(@Header(Constant.APP_TOKEN) String token, @Path("type") String type);
//
//	//问题通报，典型案例，学习园地列表
//	@POST("api/lawOnline/{type}/list")
//	@FormUrlEncoded
//	Call<BaseJson> getQuestionList(@Header(Constant.APP_TOKEN) String token, @Path("type") String type, @FieldMap Map<String, String> body);
//
//	//根据标题查询问题通报
//	@GET("api/queryProblemTitle")
//	Call<BaseJson> queryProblemList(@Header(Constant.APP_TOKEN) String token, @Query("title") String title, @Query("page") String page);
//
//	//问题通报详情
//	@GET("api/problemNotificationDetails")
//	Call<BaseJson> getProblemNotificationDetail(@Header(Constant.APP_TOKEN) String token, @Query("id") String id);
//
//	//我的问答
//	@GET("api/myQAList")
//	Call<BaseJson> getMyQAList(@Header(Constant.APP_TOKEN) String token, @Query("page") String page, @Query("limit") String limit);
//
//	//所有问答
//	@GET("api/allQAList")
//	Call<BaseJson> getAllQAList(@Header(Constant.APP_TOKEN) String token, @Query("page") String page, @Query("limit") String limit);
//
//	//根据标题查询问答
//	@GET("api/queryQATitle")
//	Call<BaseJson> queryQAList(@Header(Constant.APP_TOKEN) String token, @Query("page") String page, @Query("limit") String limit, @Query("title") String title);
//
//	//问答详情
//	@GET("api/qADetails")
//	Call<BaseJson> getQADetail(@Header(Constant.APP_TOKEN) String token, @Query("id") String id);
//
//	//提问
//	@POST("api/forwardQuestions")
//	@FormUrlEncoded
//	Call<BaseJson> forwardQuestions(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
//	//朋友圈列表
//	@POST("api/zone/list")
//	@FormUrlEncoded
//	Call<BaseJson> getFriendInfoList(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//	//
//	@POST("api/zone/add")
//	Call<BaseJson> getPublishMessageId(@Header(Constant.APP_TOKEN) String token);
//
//	//发布信息
//	@POST("api/zone/save")
//	@FormUrlEncoded
//	Call<BaseJson> savePublishMessage(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
//	//清空消息
//	@POST("api/zone/delete")
//	@FormUrlEncoded
//	Call<BaseJson> deletePublishMessage(@Header(Constant.APP_TOKEN) String token, @Field("id") String id);
//
//	//朋友圈点赞
//	@POST("api/zone/thumb")
//	@FormUrlEncoded
//	Call<BaseJson> praiseToFriend(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
//	//朋友圈发评论
//	@POST("api/zone/comment")
//	@FormUrlEncoded
//	Call<BaseJson> commentToFriend(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
//	//更新头像
//	@POST("api/updateIcon")
//	@FormUrlEncoded
//	Call<BaseJson> updateIcon(@Header(Constant.APP_TOKEN) String token, @Field("icon") String icon);

//	//创建110报警视频连接
//	@POST("api/addVideoCase")
//	@FormUrlEncoded
//	Call<BaseJson> addVideoCase(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, String> body);
//
////	//创建文字通信通道
////	@POST("api/createChat")
////	Call<BaseJson> createChat(@Header(Constant.APP_TOKEN) String token, @Body CreateChatEntity body);

//	//提交验证结果
//	@GET("api/updateIsVerify")
//	Call<BaseJson> updateVerifyStatus(@Header(Constant.APP_TOKEN) String token);
//
//	//线索列表
//	@GET("api/getClueList")
//	Call<BaseJson> getcluelist(@Header(Constant.APP_TOKEN) String token, @Query("page") int page, @Query("appFlag") int appFlag);
//
//	//线索详情
//	@GET("api/getClueInfo/{id}")
//	Call<BaseJson> getClueInfo(@Header(Constant.APP_TOKEN) String token, @Path("id") String id);


}
